/*
 * To change this license header, choose License Headers in Project Properties.
 * To change this template file, choose Tools | Templates
 * and open the template in the editor.
 */
package Estacionamento.Negocio;

import Estacionamento.ClassesBasicas.Cliente;
import Estacionamento.ClassesBasicas.Veiculo;
import Estacionamento.DAOEspecifico.DAOCliente;
import Estacionamento.DAOEspecifico.DAOVeiculo;
import Estacionamento.DAOEspecifico.IDAOCliente;
import java.util.List;
import javax.swing.JOptionPane;

/**
 *
 * @author italo.valenca
 */
public class ClienteNegocio {

    private String nome, cpf;

    public void cadastrarCliente(Cliente cli) throws Exception {
        DAOCliente info = new DAOCliente();
        Cliente cliente = new Cliente();
        List<Cliente> listasDeClientes = info.listar();
        for (Cliente listaDeCliente : listasDeClientes) {
            if (listaDeCliente.getCpf().equals(cli.getCpf())) {
                cliente = listaDeCliente;
                nome = cliente.getNome();
                cpf = cliente.getCpf();
            }
        }
        if (cliente.getCpf() == null) {
            info.cadastrar(cli);
            JOptionPane.showMessageDialog(null, "Cliente cadastrado com sucesso");
        } else {
            JOptionPane.showMessageDialog(null, "Cliente já existente: " + nome + " CPF: " + cpf);

        }
    }

    public Cliente listarCliente(String cpf) throws Exception {
        DAOCliente info = new DAOCliente();
        Cliente cliente = new Cliente();
        List<Cliente> listaDeCliente = info.listar();
        for (int i = 0; i < listaDeCliente.size(); i++) {
            if (listaDeCliente.get(i).getCpf().equals(cpf)) {
                cliente = listaDeCliente.get(i);
            }
        }
        return cliente;
    }

    public void excluirCliente(String cpf) throws Exception {
        DAOCliente info = new DAOCliente();
        DAOVeiculo infoVei = new DAOVeiculo();
        Veiculo vei = new Veiculo();
        Cliente clienteLista = this.listarCliente(cpf);
        if (clienteLista.getCpf() == null) {
            JOptionPane.showMessageDialog(null, "Cliente não cadastrado");
        } else {
            vei = clienteLista.getVeiculo();
            //infoVei.excluir(vei);
            info.excluir(clienteLista);
            JOptionPane.showMessageDialog(null, "Cliente excluído com sucesso!");
        }
    }

    public void alterarCliente(Cliente cli) throws Exception {
        DAOCliente info = new DAOCliente();
        info.alterar(cli);
        JOptionPane.showMessageDialog(null, "Cliente alterado com sucesso!");
        /*Cliente cliente = new Cliente();
         Cliente cliente2 = new Cliente();
         cliente2 = this.listarCliente(cli.getCpf());
         List<Cliente> listasDeClientes = info.listar();
         for (Cliente listaDeCliente : listasDeClientes) {
         if (listaDeCliente.getCpf().equals(cli.getCpf())) {
         //cliente = listaDeCliente;
         //info.excluir(listaDeCliente);
         info.alterar(cli);
         System.out.println("Cliente alterado com sucesso!");
         //JOptionPane.showMessageDialog(null, "Cliente alterado com sucesso!");
         }
         }
         if (cliente.getCpf() == null) {
         //JOptionPane.showMessageDialog(null, "Cliente não cadastrado");
         System.out.println("Cliente não cadastrado");
         }
         /*DAOCliente info = new DAOCliente();
         Cliente cliente = new Cliente();
         List<Cliente> listaDeCliente = info.listar();
         for (int i = 0; i < listaDeCliente.size(); i++) {
         if (listaDeCliente.get(i).getCpf() == cli.getCpf()) {
         cliente = listaDeCliente.get(i);
         }
         }
         //Cliente clienteLista = this.listarCliente(cpf);
         if (cliente.getClass().equals(null)) {
         info.alterar(cliente);
         //JOptionPane.showMessageDialog(null, "Cliente alterado com sucesso!");
         System.out.println("Cliente alterado com sucesso!");
         } else {
         System.out.println("Cliente não cadastrado");
         //JOptionPane.showMessageDialog(null, "Cliente não cadastrado");
         }*/

    }
    /*
     public List<Cliente> ListarClientesPorNome(Cliente cli) throws Exception {
     DAOCliente info = new DAOCliente();
     return info.ListarClientesPorNome(cli);
     }
    
     public void AlterarLoginSenha(Cliente cli) throws Exception {
     DAOCliente funcionario = new DAOCliente();
     funcionario.AlterarLoginSenha(cli);
     }

     public List<Cliente> VerificarLogin(Cliente cli) throws Exception {
     DAOCliente cliente = new DAOCliente();
     return cliente.VerificarLogin(cli);
     }*/
}
